/**
 * 广告云对象
 */
module.exports = {
	_before: function () { // 通用预处理器

	},
	
	/**
	 * 作用：获取数据
	 * 参数：where:条件，getOne:是否查询单条数据
	 * return:array,查询后的结果
	 */
	async get(where={},getOne=false) {
		// 参数校验，如无参数则不需要
		if (false) return {errCode: 'PARAM_IS_NULL',errMsg: '参数不能为空'};
		const db = uniCloud.database() ;
		const collectionName = "advert";
		try{
			const data = await db.collection(collectionName).where(where).orderBy('sort','asc').get({getOne:getOne})
			// 返回结果
			return {
				code:200,
				message:"获取成功",
				result:data
			}
		}catch(error){
			// 返回结果
			return {
				message:'内部错误',
				error 
			}
		}
		
	},
	
	/**
	 * 作用：查询出广告并存入redis
	 */
	
	async getDataAndInsertRedis(where){
		var advert = uniCloud.importObject('advert');
		const redis = uniCloud.redis();
		var redisData = await redis.get('advert-data');
		if(!redisData || !redisData[0]){
			where.is_show = 1;
			var result = await advert.get(where);
			var data = result.result.data;
			var setRedis = await redis.set('advert-data',JSON.stringify(data),'EX',86400);//缓存一天，除非手动删除
			return {
				code:200,
				message:"获取成功",
				result:data
			};
		}else{
			return {
				code:200,
				message:"获取成功",
				result:JSON.parse(redisData)
			};
		}
		
	}
	
}
